home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / math.swg / 0030_More Primes Yet !!.pas < prev    next >
Pascal/Delphi Source File  |  1993-08-27  |  754b  |  33 lines

  1. {
  2. JANOS SZAMOSFALVI
  3.  
  4. the following routine uses a brute force approach with some
  5. optimization; it took less than 3 minutes with a 286/12 to find
  6. and print all primes up to 32768, about 50 seconds w/o printing
  7. them; it becomes a bit slow when you get into a 6 digit range
  8. }
  9.  
  10. PROGRAM Primes;
  11. VAR
  12.   number,
  13.   max_div,
  14.   divisor : INTEGER;
  15.   prime   : BOOLEAN;
  16. BEGIN
  17.   writeln('Primes:');
  18.   writeln('2');
  19.   FOR number := 2 TO MAXINT DO
  20.   BEGIN
  21.     max_div := Round(sqrt(number) + 0.5);
  22.     prime   := number MOD 2 <> 0;
  23.     divisor := 3;
  24.     WHILE prime AND (divisor < max_div) DO
  25.     BEGIN
  26.       prime   := number MOD divisor <> 0;
  27.       divisor := divisor + 2;
  28.     END;
  29.     IF prime THEN
  30.       writeln(number);
  31.   END;
  32. END.
  33.